<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
require_once "coneccionbdd.php";

class factura {

    // VALIDAR CAMPOS
    public static function getCamposObligatorios() {

        return array(
            'cliente_id' => 'cliente_id',
            'fecha_emision' => 'fecha_emision',
        );
    }

    public static function getError($data) {
        $camposobligatorios = static:: getCamposObligatorios();
        $mensajes_campos = static::getMensajes();
        $arrayerrors = array();
        $guardar = true;
        foreach ($data as $key => $value) {
            $existe_campo = array_key_exists($key, $camposobligatorios);
            if ($existe_campo) {
                $hay_dato = ($value == null || $value == "") ? false : true; //Verifica que el campono este nullo ni vacio
                if (!$hay_dato) {
                    $guardar = false;
                    $arrayerrors[$key] = $mensajes_campos[$key];
                }
            }
        }
        $resultado = array('guardar' => $guardar, 'errores' => $arrayerrors);
        return $resultado;
    }

    public static function getMsjCamposObligatorios($data) {
        $camposobligatorios = static::getError($data);
        return array(
            'success' => $camposobligatorios["guardar"],
            'errors' => $camposobligatorios["errores"]
        );
    }

    public static function getMensajes() {
        return array(
            'cliente_id' => array('Cliente es Obligatorio.'),
            'fecha_emision' => array('Fecha de Emision es obligatorio.'),
        );
    }

    // INSERTAR, ACTUALIZAR Y ELIMINAR

    public static function setInsertar($datos) {

        $cliente_id = $datos["id_cliente"];
        $fecha_emision = $datos["fecha_emision"];
       
        $query = "INSERT INTO factura (cliente_id, fecha_emision) "
                . "VALUES ('$cliente_id','$fecha_emision')";
        $resultado = mysqli_query(coneccionbdd::getConectar(), $query);
        mysqli_close(coneccionbdd::getConectar()); // Cerramos la conexion con la base de datos
        return $resultado;
       
    }

    public static function setActualizar($datos) {
        $id = $datos['id'];
        $cliente_id = $datos["id_cliente"];
        $fecha_emision = $datos["fecha_emision"];

        $sql = "UPDATE factura SET cliente_id='$cliente_id', fecha_emision='$fecha_emision' "
                . "WHERE id='$id'";
        $resultado = mysqli_query(coneccionbdd::getConectar(), $sql);
        mysqli_close(coneccionbdd::getConectar()); // Cerramos la conexion con la base de datos
        return $resultado;
    }

    // OBTENER DATOS GRID

    public static function getFacturasTotal() {
        $query = "SELECT * FROM factura t";
        $resultado = mysqli_query(coneccionbdd::getConectar(), $query);

        $array_consulta = array();
        $count = 0;
        while ($fila = mysqli_fetch_array($resultado)) {
            array_push($array_consulta, $fila);
            $count++;
        }
        $array_resultado = array('total' => $count, 'result' => $array_consulta);
        return $array_resultado;
    }

    public static function getFacturasTotalRango($limit, $offset) {
        $query = "SELECT * FROM factura t limit $offset ,$limit";
        $resultado = mysqli_query(coneccionbdd::getConectar(), $query);
        $array_consulta = array();
        $count = 0;
        while ($fila = mysqli_fetch_array($resultado)) {
            array_push($array_consulta, $fila);
            $count++;
        }
        $array_resultado = array('total' => $count, 'result' => $array_consulta);
        return $array_resultado;
    }

    public static function getFacturas($data) {
        //Informacion Total
        $totalInformacion = static::getFacturasTotal();
        $command_total = $totalInformacion['total'];
        //total
        $result['total'] = (int) $command_total;
        $current_page = isset($data['current']) ? (int) $data['current'] : 0; // control a error when 'current' not exist
        $limit = isset($data['rowCount']) ? $data['rowCount'] : 10;
        $offset = ($limit * ($current_page - 1));
        $result['current'] = $current_page;
        $result['rowCount'] = $limit;
        $resultadoPaginacion = static::getFacturasTotalRango($limit, $offset);
        $result['rows'] = $result['total'] != 0 ? $resultadoPaginacion['result'] : array();
        return $result;
    }

    public static function getUsuariosTotal() {
        $query = "SELECT * FROM usuarios t";
        $resultado = mysqli_query(coneccionbdd::getConectar(), $query);

        $array_consulta = array();
        $count = 0;
        while ($fila = mysqli_fetch_array($resultado)) {
            array_push($array_consulta, $fila);
            $count++;
        }
        $array_resultado = array('total' => $count, 'result' => $array_consulta);
        return $array_resultado;
    }

    public static function getUsuariosTotalRango($limit, $offset) {
        $query = "SELECT * FROM usuarios t limit $offset ,$limit";
        $resultado = mysqli_query(coneccionbdd::getConectar(), $query);
        $array_consulta = array();
        $count = 0;
        while ($fila = mysqli_fetch_array($resultado)) {
            array_push($array_consulta, $fila);
            $count++;
        }
        $array_resultado = array('total' => $count, 'result' => $array_consulta);
        return $array_resultado;
    }
    
    
    
    
       public static function getListSelect2($search_value = null) {
        $array_result = array();
        $conexion = new coneccionbdd();
        $q = '';        //    create variable for input
        $q .= " SELECT ";
        $q .= " t.id as text ";
        $q .= " FROM ";
        $q .= " factura t ";
        $q .= " WHERE ";
        $q .= " t.id, like ? ";
        $q .= "limit 10 ";
//        $array_result = $search_value ? $conexion->ObtenerResultadoSelectLikeCliente($q, $search_value) : static::getInfoClientesData();
        $array_result = $search_value ? $conexion->ObtenerResultado('Call pa_detalle_factura("' . $search_value . '")') : $conexion->ObtenerResultado("Select t.id as text from factura t limit 10");
        return $array_result;
    }

}
